/**
 * 
 */
package co.fitstart.mobile.service;

import java.util.List;

import com.demo2do.core.service.GenericService;

import co.fitstart.entity.order.Order;
import co.fitstart.entity.order.OrderInvestigateRecord;
import co.fitstart.entity.order.OrderType;
import co.fitstart.entity.order.PaymentStatus;
import co.fitstart.entity.user.User;
import co.fitstart.entity.user.agent.Agent;
import co.fitstart.mobile.entity.trading.Shopping;

/**
 * @author downpour
 *
 */
public interface OrderService extends GenericService<Order> {
    
    /**
     * List
     * 
     * @param user
     * @param paymentStatus
     * @return
     */
    public List<Order> list(User user, PaymentStatus paymentStatus);
    
    /**
     * 
     * @param orderType
     * @param agent
     * @return
     */
    public List<Order> listAgentOrder(OrderType orderType, Agent agent);
    
    /**
     * create order by shopping data
     * 
     * @param shopping
     * @return
     */
    public Order create(Shopping shopping);
    
    /**
     * 
     * @param order
     * @param address
     */
    public void editShippingAddress(Order order, String address);
    
    /**
     * 
     * @param order
     * @return
     */
    public OrderInvestigateRecord loadOrderInvestigateRecord(Order order);
    
    /**
     * 
     * @param couponId
     * @return
     */
    public Order loadOrder(Long couponId);
    
}
